+2008-08-15 Richard Hult <richard@imendio.com>
+
+ * gdk/quartz/gdkdrawable-quartz.c (gdk_quartz_draw_drawable): Some
+ aftermath of the fix of bug #543868. Clip and flip to the source,
+ not the destination. Don't save/restore the gstate, it's already
+ done when getting/releasing the context.
+
2008-08-15 Richard Hult <richard@imendio.com>
* gtk/gtkclipboard-quartz.c (gtk_clipboard_wait_is_uris_available):
else if (dest_depth != 0 && src_depth == dest_depth)
{
CGContextRef context = gdk_quartz_drawable_get_context (drawable, FALSE);
- gint width, height;
if (!context)
return;
_gdk_quartz_gc_update_cg_context (gc, drawable, context,
GDK_QUARTZ_CONTEXT_STROKE);
- CGContextSaveGState (context);
-
- /* convert coordinates from gtk+ to core graphics */
- gdk_drawable_get_size (drawable, &width, &height);
- CGContextTranslateCTM (context, 0, height);
+ CGContextClipToRect (context, CGRectMake (xdest, ydest, width, height));
+ CGContextTranslateCTM (context, xdest - xsrc, ydest - ysrc +
+ GDK_PIXMAP_IMPL_QUARTZ (src_impl)->height);
CGContextScaleCTM (context, 1.0, -1.0);
- CGContextClipToRect (context, CGRectMake (xdest, ydest, width, height));
- CGContextTranslateCTM (context, xdest - xsrc, ydest - ysrc);
CGContextDrawImage (context,
CGRectMake(0, 0,
GDK_PIXMAP_IMPL_QUARTZ (src_impl)->width,
GDK_PIXMAP_IMPL_QUARTZ (src_impl)->height),
GDK_PIXMAP_IMPL_QUARTZ (src_impl)->image);
- CGContextRestoreGState (context);
-
gdk_quartz_drawable_release_context (drawable, context);
}
else